<?php

//登录校验和允许跨域
use Illuminate\Support\Facades\Route;
use Illuminate\Contracts\Routing\Registrar as RouteContract;

Route::group(['namespace' => 'Api'], function () {

    Route::group(['middleware' => ['auth:api']], function (RouteContract $api) {
        $api->post('/Upload/uploadImg', 'UploadController@uploadImg');//oss 上传图片/视频(权限/智能检测)
        $api->post('/Upload/downloadImg', 'UploadController@downloadImg');//oss 下载图片/视频
        $api->post('/Upload/getImg', 'UploadController@getImg');//oss 查看文件
        $api->post('/Upload/delFile', 'UploadController@delFile');//删除文件
        $api->post('/Upload/privateDownloadUrl', 'UploadController@privateDownloadUrl');//获取私有下载url
        $api->post('/Upload/setUploadInformation', 'UploadController@setUploadInformation');//oss 设置文件的元信息
        $api->post('/Upload/updateUploadInformation', 'UploadController@updateUploadInformation');//oss 修改文件元信息
        $api->post('/Upload/getUploadInformation', 'UploadController@getUploadInformation');//oss 获取文件元信息
        $api->get('/Upload/getAIMediaAuditJobInfo', 'UploadController@getAIMediaAuditJobInfo');//oss 获取智能审核信息
        $api->post('/Upload/uploadIext', 'UploadController@uploadIext');//oss 文本上传(智能检测)
        $api->post('/Upload/refreshUploadVideo', 'UploadController@refreshUploadVideo');//刷新视频上传凭证
        $api->post('/Send/sendSms', 'SendController@sendSms');//发送验证码

        //有道智云翻译
        Route::post('/Translate/textTranslate', 'TranslateController@textTranslate');//文本翻译
        Route::post('/Translate/imgTranslate', 'TranslateController@imgTranslate');//图片翻译
        Route::post('/Translate/voiceTranslate', 'TranslateController@voiceTranslate');//语音翻译

        $api->post('/Chat/chatTest', 'ChatController@chatTest');//api测试

    });



    Route::any('/asyn/register', 'AsynController@register'); // 同步im环信融云网易云信用户
    Route::any('/asyn/createGroup', 'AsynController@createGroup'); // 同步群组到环信融云，网易云信暂时不做
    Route::any('/asyn/createMember', 'AsynController@createMember'); // 同步群组的用户到环信融云，网易云信暂时不做
    Route::any('/asyn/auditFriend', 'AsynController@auditFriend'); // 同步用户添加的好友到环信，网易云信暂时不做
    Route::any('/group/chatRecord', 'GroupController@chatRecord'); // 拉起所有用户平台的聊天记录
    Route::any('/asyn/removeBanne', 'AsynController@removeBanne'); // 禁言跑定时脚本，1分钟跑一次，过了有效期解除禁言
    Route::get('/ftf/checkTimeout','FTFGroupController@checkTimeout');//面对面建群过期处理
    Route::any('/friend/groupAvatar', 'FriendController@groupAvatar'); // 拉起所有用户平台的聊天记录





    Route::group(['prefix' => 'auth'], function (RouteContract $api) {
        // 无需认证路由
        $api->match(['get', 'post'], '/loginerror', function () {
            return errBack('您没有权限,请登录！');
        })->name('login');

        $api->match(['get', 'post'], '/login', 'AuthController@login'); // 手机号登录
        $api->post('/captcha', 'AuthController@getCaptcha');//获取老用户验证码

        $api->post('/forgetpassword', 'AuthController@forgetPassword'); // 忘记密码
        $api->post('/resetPassword', 'AuthController@resetPassword'); // 重置密码
        $api->post('/smsLogin', 'AuthController@smsLogin'); // 短信验证码登录注册

        // 需认证路由
        Route::group(['middleware' => 'auth:api'], function (RouteContract $api) {
            $api->get('/user', 'AuthController@user');
            $api->get('/deviceList', 'AuthController@deviceList'); // 设备号管理
            $api->post('/modifyPhone', 'AuthController@modifyPhone'); // 更改手机号码
            $api->post('/register', 'AuthController@register'); // 注册，更新密码
            $api->post('/checkCaptcha', 'AuthController@checkCaptcha');// 验证验证码是否正确
            $api->post('/verifyDeviceSms', 'AuthController@verifyDeviceSms'); // 登录设备验证手机短信
        });

    });


    Route::group(['middleware' => ['auth:api']], function (RouteContract $api) {
        $api->get('/group/index', 'GroupController@index'); // 群组列表
        $api->get('/group/chatList', 'GroupController@chatList'); // 群聊列表列表
        $api->get('/group/roleList', 'GroupController@roleList'); // 角色列表
        $api->get('/group/userList', 'GroupController@userList'); // 用户参与所有群组
        $api->get('/group/detail', 'GroupController@detail'); // 单个群组用户详情
        $api->post('/group/addGroup', 'GroupController@addGroup'); // 创建群组
        $api->post('/group/editGroup', 'GroupController@editGroup'); // 编辑群组
        $api->delete('/group/delGroup', 'GroupController@delGroup'); // 删除群组 群主解散群
        $api->get('/group/memberList', 'GroupController@memberList'); // 分页获取群组成员
        $api->post('/group/addSingleMember', 'GroupController@addSingleMember'); // 添加单个群组成员
        $api->post('/group/addManyMember', 'GroupController@addManyMember'); // 批量添加多个群组成员
        $api->post('/group/delSingleMember', 'GroupController@delSingleMember'); // 移除单个群组成员
        $api->post('/group/delManyMember', 'GroupController@delManyMember'); // 批量移除多个群组成员
        $api->get('/group/managerList', 'GroupController@managerList'); // 分页获取群管理员列表
        $api->post('/group/upManager', 'GroupController@upManager'); // 升级群管理员
        $api->post('/group/downManager', 'GroupController@downManager'); // 移除群管理员
        $api->post('/group/turnOwner', 'GroupController@turnOwner'); // 转让群主
        $api->get('/group/blackList', 'GroupController@blackList'); // 群组黑名单管理列表
        $api->post('/group/addSingleBlack', 'GroupController@addSingleBlack'); // 添加用户群组黑名单
        $api->post('/group/addManyBlack', 'GroupController@addManyBlack'); // 添加多个用户群组黑名单
        $api->post('/group/delSingleBlack', 'GroupController@delSingleBlack'); // 群组黑名单移除单个用户
        $api->post('/group/delManyBlack', 'GroupController@delManyBlack'); // 群组黑名单批量移除多个用户
        $api->post('/group/addManyBanned', 'GroupController@addManyBanned'); // 群组批量添加禁言
        $api->post('/group/freeManyBanned', 'GroupController@freeManyBanned'); // 群组批量移除多个禁言成员 解禁
        $api->get('/group/bannedList', 'GroupController@bannedList'); // 群组禁言列表管理
        $api->post('/group/outGroup', 'GroupController@outGroup'); // 群主和群管退出群聊，群主只能解散群
        $api->post('/group/setGroupName', 'GroupController@setGroupName'); // 修改群名称，群主和群管才可以修改
        $api->post('/group/setGroupAudit', 'GroupController@setGroupAudit'); // 修改入群许可，群主和群管才可以修改
        $api->post('/group/setAllBanned', 'GroupController@setAllBanned'); // 设置全员禁言，群主和群管才可以修改
        $api->delete('/group/detail', 'GroupController@detail'); // 群组详情
        $api->post('/group/addScanMember', 'GroupController@addScanMember'); // 扫码添加单个群组成员
        $api->post('/group/auditMember', 'GroupController@auditMember'); // 群主群管审核用户进群可以批量
        $api->get('/group/memberLoginList', 'GroupController@memberLoginList'); // 分页获取群成员进退历史
        $api->get('/group/inviteConfirmList', 'GroupController@inviteConfirmList'); // 邀请邀请确认列表
        $api->get('/group/inviteConfirmDetail', 'GroupController@inviteConfirmDetail'); // 邀请详情

        $api->get('/group/roleMemberList', 'GroupController@roleMemberList'); // 分页获取群组成员删除用到，不显示群主


        $api->post('/user/addFriend', 'UserController@addFriend'); // 添加好友申请
        $api->post('/user/auditFriend', 'UserController@auditFriend'); // 审核好友申请
        $api->post('/user/delFriend', 'UserController@delFriend'); // 删除好友
        $api->get('/user/friendList', 'UserController@friendList'); // 获取好友的用户列表
        $api->get('/user/blackFriendList', 'UserController@blackFriendList'); // 获取黑名单用户列表
        $api->post('/user/addUserBlack', 'UserController@addUserBlack'); // 添加好友到黑名单
        $api->post('/user/delUserBlack', 'UserController@delUserBlack'); // 从黑名单中移除
        $api->get('/user/newFriendList', 'UserController@newFriendList'); // 新朋友列表
        $api->post('/user/phoneFriendList', 'UserController@phoneFriendList'); // 手机联系人
        $api->post('/user/setFriendAllow', 'UserController@setFriendAllow'); // 设置好友许可权限
        $api->get('/user/goodFriend', 'UserController@goodFriend'); // 查看好友资料
        $api->post('/user/setFriendNote', 'UserController@setFriendNote'); // 设置好友备注
        $api->post('/user/setFriendCover', 'UserController@setFriendCover'); // 设置好友的聊天背景
        $api->get('/user/reportCateList', 'UserController@reportCateList'); // 举报类型列表
        $api->post('/user/addReportChat', 'UserController@addReportChat'); // 举报聊天证明
        $api->post('/user/addTopChat', 'UserController@addTopChat'); // 置顶聊天取消置顶单聊
        $api->post('/user/setFriendDisturb', 'UserController@setFriendDisturb'); // 设置单聊免打扰
        $api->get('/user/noAllowLookList', 'UserController@noAllowLookList'); // 动态权限不让对方看
        $api->get('/user/noLookOtherList', 'UserController@noLookOtherList'); // 动态权限不看对方
        $api->post('/user/delAllowLook', 'UserController@delAllowLook'); // 不让对方看我的朋友圈移除，支持多个
        $api->post('/user/addAllowLook', 'UserController@addAllowLook'); // 不让对方看我的朋友圈添加，支持多个
        $api->post('/user/delLookOther', 'UserController@delLookOther'); // 不看对方的朋友圈移除，支持多个
        $api->post('/user/addLookOther', 'UserController@addLookOther'); // 不看对方的朋友圈添加，支持多个
        $api->get('/user/groupFriendList', 'UserController@groupFriendList'); // 群管理里面获取好友列表
        $api->get('/user/commonGroup', 'UserController@commonGroup'); // 查看好友共同的群聊

        $api->get('/user/noAllowFriendList', 'UserController@noAllowFriendList'); // 不允许对方看获取好友的用户列表
        $api->get('/user/noLookFriendList', 'UserController@noLookFriendList'); // 不看对方看获取好友的用户列表

        $api->get('/user/noticeList', 'UserController@noticeList'); // 消息通知
        $api->post('/user/delNotice', 'UserController@delNotice'); // 删除消息通知
        $api->post('/user/addForward', 'UserController@addForward'); // 添加用户转发记录表
        $api->get('/user/forwardList', 'UserController@forwardList'); // 转发记录表



        $api->get('/user/search', 'UserController@search');  //点搜索用户
        $api->post('/user/editInfo', 'UserController@editInfo'); // 修改个人资料
        $api->post('/user/setNotice', 'UserController@setNotice'); // 修改消息设置
        $api->post('/user/setWay', 'UserController@setWay'); // 设置我的隐私添加方式
        $api->post('/user/setCurrent', 'UserController@setCurrent'); // 设置我的通用
        $api->post('/user/addFeedback', 'UserController@addFeedback'); // 意见反馈表
        $api->get('/user/conditionList', 'UserController@conditionList'); // 获取所有状态
        $api->post('/user/setCondition', 'UserController@setCondition'); // 用户设置状态


        $api->post('/user/addTopGroupChat', 'UserController@addTopGroupChat'); // 置顶聊天取消置顶群聊
        $api->post('/user/setGruopDisturb', 'UserController@setGruopDisturb'); // 设置群聊免打扰
        $api->post('/user/setGroupShowName', 'UserController@setGroupShowName'); // 设置群聊显示群成员昵称
        $api->post('/user/setGroupCover', 'UserController@setGroupCover'); // 设置群聊的聊天背景
        $api->post('/user/setGroupNote', 'UserController@setGroupNote'); // 设置群聊中自己的备注
        $api->post('/user/setGroupSummery', 'UserController@setGroupSummery'); // 群主和群管理员设置群公告
        $api->post('/user/addCollent', 'UserController@addCollent'); // 添加我的收藏
        $api->post('/user/delCollent', 'UserController@delCollent'); // 删除收藏
        $api->get('/user/collectList', 'UserController@collectList'); // 我的收藏列表
        $api->post('/user/delDevice', 'UserController@delDevice'); // 删除设备
        $api->post('/user/delAccount', 'UserController@delUserAccount'); // 注销用户
        $api->get('/user/searchCollect', 'UserController@searchCollect'); // 搜索收藏
        $api->post('/user/userStatus', 'UserController@userStatus');//用户状态，上线或下线

        $api->post('/friend/addCircle', 'FriendController@addCircle'); // 发布朋友圈
        $api->get('/friend/circleList', 'FriendController@circleList'); // 朋友圈广场列表
        $api->post('/friend/addComment', 'FriendController@addComment'); // 发布评论
        $api->post('/friend/addCircleLike', 'FriendController@addCircleLike'); // 朋友圈点赞
        $api->get('/friend/circleDetail', 'FriendController@circleDetail'); // 朋友圈详情
        $api->get('/friend/commentList', 'FriendController@commentList'); // 评论列表
        $api->get('/friend/userCircleList', 'FriendController@userCircleList'); // 好友资料朋友圈主页
        $api->post('/friend/delCircle', 'FriendController@delCircle'); // 删除朋友圈
        $api->post('/friend/setSecrecyCircle', 'FriendController@setSecrecyCircle'); // 朋友圈设为私密
        $api->get('/friend/myCircleList', 'FriendController@myCircleList'); // 自己的朋友圈主页



        $api->post('/ftf/createGroup', 'FTFGroupController@createGroup');//创建面对面群
        $api->post('/ftf/memberExit', 'FTFGroupController@memberExit');//退出面对面群
        $api->post('/ftf/intoGroup', 'FTFGroupController@intoGroup');//面对面进群
        $api->post('/ftf/setStatus', 'FTFGroupController@setStatus');//更改群状态
        $api->get('/ftf/nearbyGroup', 'FTFGroupController@nearbyGroup');//获取附近的群

        $api->post('/cert/personal', 'CertificationController@personal');//申请个人实名认证
        $api->get('/audioAndVideo/aliRtcToken', 'AudioAndVideoController@aliRtcToken');//获取阿里音视频令牌
        $api->get('/audioAndVideo/agoraRtcToken', 'AudioAndVideoController@agoraRtcToken');//获取声网音视频令牌
        $api->post('/audioAndVideo/startCommLog', 'AudioAndVideoController@startCommLog');//发起通话记录
        $api->post('/audioAndVideo/commStatusLog', 'AudioAndVideoController@commStatusLog');//通话状态记录

        $api->get('/live/pushUrl', 'LiveController@pushUrl');//获取直播推流地址
        $api->get('/live/playUrl', 'LiveController@playUrl');//获取直播播流地址
    });


});









